/***********************************************************************************
Copy right:	    Coffee Tech.
Author:         jiaoyue
Date:           2021-11-21
Description:    设备采集服务公共头文件
***********************************************************************************/

#ifndef DC_PUB_H
#define DC_PUB_H

#include <edge_pub.h>
#include <pthread.h>
#include <pub_define.h>
#include <log_utils.h>
#include <shmem.h>
#include <unix_sock.h>
#include <nv_utils.h>

enum REPORT_TYPE_T
{
    REPORT_TYPE_NONE,
    REPORT_TYPE_CHANGE,
    REPORT_TYPE_PERIOD
};

//上报方式
struct report_type
{
    int type;  //0-不上报，客户端主动采集；1-变化上报，即连续2次值不相等；2-周期上报
    int period;  //上报周期时间，单位秒，仅在type=2时有效
};

struct global_data
{
    struct unix_param dc_para;
    struct unix_param ec_para;
    struct node_cache *node_cache_p;  //指向共享内存节点缓存
    struct report_type *report_type_p;  //指向上报方式结构体
};

extern struct global_data g_data;
extern struct unix_param unix_dc; //给设备采集进程用
extern struct unix_param unix_ec; //给边缘采集进程用

#define MODULE DR_NAME

#define TOPIC_DATA_UP       "/app/data/up"
#define TOPIC_DATA_DOWN     "/app/data/down"
#define TOPIC_CTL_UP        "/app/control/up"
#define TOPIC_CTL_DOWN      "/app/control/down"

#endif  // DC_PUB_H
